#ifndef RECURSODEALMACENAMIENTOINDEXADO_H_
#define RECURSODEALMACENAMIENTOINDEXADO_H_

#include "RecursoDeAlmacenamiento.h"

class Indice;
class Key;
class TipoClave;

class RecursoDeAlmacenamientoIndexado: public RecursoDeAlmacenamiento {

private:
	Indice* indice;

protected:
	RecursoDeAlmacenamientoIndexado(EstrategiaAlmacenamiento*,
			EstrategiaRecurso*, Indice* indice);

public:
	virtual ~RecursoDeAlmacenamientoIndexado();

	virtual Bytes cargar(Key clave);
	virtual bool guardar(Bytes dato);
	virtual bool modificar(Bytes dato);
	virtual bool eliminar(Key clave);

	virtual void inicializar();

	Indice* getIndice();

	friend class FabricaRecursosAlmacenamiento;
	friend class IndiceSecuencial;
};

#endif /* RECURSODEALMACENAMIENTOINDEXADO_H_ */
